iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
3
Security

那個夜裡的資安系列 第 16

那個夜裡的資安-15(mod_security)

  • 分享至 

  • xImage
  •  

『資訊長,我們來看一下mod_security.conf 裡,一些基本的設定好了,有一個很特別,這個先講好了。在mod_security.conf裡,有一個設定是,回應目前Apache的版本,這個設定是

SecServerSignature "願時光匆匆流去...我只在乎妳"

但,如果字數太多或設定不對,則會出現錯誤訊息,導致Apache無法起動。

錯誤訊息是SecServerSignature: original signature too short. Please set ServerTokens to Full.

「等一下,你那是什麼好笑的錯誤訊息? 一般人,不會看到這個吧?」

『神之手沒聽過嗎? 我常常遇到連原廠工程師,都沒遇到過的狀況...』

「這有什麼好得意的,你看你那表情,很好笑耶。」

『不要我笑,難不成我要哭嗎? 好啦,講Apache啦...總之,在httpd.conf裡有一個設定,ServerTokens,這個可以讓我們決定要顯示多少資訊。

#ServerTokens Prod
#ServerTokens Major
#ServerTokens Minor
#ServerTokens Min
#ServerTokens OS
ServerTokens Full

妳看畫面,大概就是這樣的呈現。』

https://ithelp.ithome.com.tw/upload/images/20190921/20006132ftKwsQLbDV.png

https://ithelp.ithome.com.tw/upload/images/20190921/20006132pB9pEYymWv.png

https://ithelp.ithome.com.tw/upload/images/20190921/20006132E2hxrVMBL3.png

https://ithelp.ithome.com.tw/upload/images/20190921/20006132hbwSVhm7gj.png

https://ithelp.ithome.com.tw/upload/images/20190921/20006132O9uODErKiW.png

「也就是說,如果你的Apache版本字數太長,就會看到你說的錯誤訊息,然後ServerTokens 就要設定Full? 真的是夠了...沒關係,原諒你,繼續。」

『然後,再來是

#預設就有的這兩行
IncludeOptional modsecurity.d/*.conf
IncludeOptional modsecurity.d/activated_rules/*.conf

妳在CentOS下,用yum安裝好mod_security後,這兩行也會出現在mod_security.conf裡,而且是最上面的兩行。另外,安裝過程中,也會建立activated_rules這個資料夾。』

「那很方便啊,安裝好之後,就能用了,不錯啊。」

『不,它只是幫妳建立,但裡面是空的。』

「空的? 為什麼不放設定進去?」

『活在自由民主的資本主義社會裡,原廠怎麼可以侵佔我們的人權,當然是我們自己選擇要放什麼啊...

不過,安裝過程中,會建另一個資料夾,叫做owasp-modsecurity-crs 這裡面,會有已經設定好,給mod_security使用的Rule(規則),我們可以把這裡面的規則,複製一份到activated_rules裡。』

「然後就能用了?」

『還是不行耶...』

「先生,你一次講完好不好,很煩耶。」

『資訊長,要有點耐心啊,不然妳可以自己開發啊,妳愛怎麼訂建置規則,就怎麼訂。總之,這個owasp-modsecurity-crs資料夾裡面的Rule是由OWASP這個非營利組織提供的,針對前十大資安風險,提供出來的規則。

所以,還需要再搬移一個crs-setup.conf,到**/etc/httpd/conf.d**下面,搬過去之後,重新起動Apache,就算是設定完成了。

如果想要確定,Apache是不是真的有載入mod_security,可以去看phpinfo,裡面會出現mod_security。』

「哇,載入了耶..」

『再來就是,在crs-setup.conf裡,有兩個規則,可以分別設定,放行或拒絕。

#符合階段一,記錄,放行
SecDefaultAction "phase:1,log,auditlog,pass"

#符合階段二,記錄,放行
SecDefaultAction "phase:2,log,auditlog,pass"

#符合階段一,記錄,拒絕連線,回應403
SecDefaultAction "phase:1,log,auditlog,deny,status:403"

#符合階段二,記錄,拒絕連線,回應403
SecDefaultAction "phase:2,log,auditlog,deny,status:403"

請問資訊長,階段一和階段二,是什麼?』

「又問我? 我知道嗎?」

『知道...妳不是才講出來嗎?』

「階段一...階段二...我知道了,Request HeaderRequest Body...」

『哇,妳真的知道! 好啦,再問妳,剛安裝並載入mod_security之後,請問,是先阻擋還是先放行?』

「你這樣問的話...我覺得最後可能是加起來除以2,就是可能先放行,觀察一下,再做rule的調整,然後再阻擋。 對嗎?」

『差不多吧,我們在練習時,可以通通擋或通通開,但要看一下記錄。真正在運作時,如果這樣搞,妳們有錢銀行,可能會被罵翻天哦.......』

「我們? 不包含你嗎?」

『我是有錢集團請來的,不是有錢銀行請來的......繼續妳講到這個,那再問妳

httpd.confmod_security.confcrs-setup.conf,請問有什麼關係?』

「想一下,等等...httpd.conf 載入 mod_security.conf ,mod_security.conf 再載入 crs-setup.conf,其實就是一個檔案,但分三個區塊來處理?」

『差不多吧,看妳是從系統的角度看,還是開發人員的角度看...下班啦,龍山寺,走吧。』

「你剛說去那裡? 你是不是太累了,忘了應該是我們要去的地方? 」

『呃...淡水...淡水,太累太累了。』

「小心我真的把你手機給摔爛......然後,再買隻新的送你...講到這個,我發現你變了耶,你之前裝那個Android版的Kali Linux,沒有root,你就裝了體驗版的...我印象中的你,不是這樣就算了的人耶。」

『對啊,我不知道怎麼root自己的HTC手機,但我還是裝好了,完整版的Kali Linux 在我的HTC U11 Ultra裡...』

「你看吧,你變.........等一下,你說你不會root自己的手機,但你裝好了? 怎麼裝?」

『付費請人幫我root就好啦......』

「裝好了? 完整版? 和我們裝在VM裡的一樣?」

『不然怎麼叫完整版? 妳看這CPU,不一樣吧...』

https://ithelp.ithome.com.tw/upload/images/20190921/20006132CVOiJJw8Vp.png

「真的耶...我買隻新手機給你,你那就給我用吧,我委曲一點...讓你再教我多一點好了,不過廢話要少一點哦。」

(待)

2019/09/21 SunAllen


上一篇
那個夜裡的資安-14(mod_security)
下一篇
那個夜裡的資安-16(mod_security)
系列文
那個夜裡的資安35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
一級屠豬士
iT邦大師 1 級 ‧ 2019-09-21 13:07:08

這個故事裡的資訊長,太鳥一點了吧.

SunAllen iT邦研究生 1 級 ‧ 2019-09-21 13:09:14 檢舉

所以是故事啊 XD

我要留言

立即登入留言